{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import random\n",
    "x = random.randint(1, 10)\n",
    "x\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'list'>\n",
      "<class 'numpy.ndarray'>\n",
      "30\n",
      "30\n",
      "30\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "x_list = [1, 2, 3, 4]\n",
    "print(type(x_list))\n",
    "\n",
    "x_array = np.array([1, 2, 3, 4])\n",
    "print(type(x_array))\n",
    "\n",
    "x_sum = 0\n",
    "for x in x_list:\n",
    "    x_sum += x ** 2\n",
    "print(x_sum)\n",
    "\n",
    "print(sum([x**2 for x in x_list]))\n",
    "\n",
    "print(sum(x_array ** 2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x202a9551610>]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "x = np.linspace(0, 2*3.1415, 100)\n",
    "y = np.sin(x)\n",
    "plt.plot(x, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[100, 2, 3, 4]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = [1, 2, 3, 4]\n",
    "y = x\n",
    "x[0] = 100\n",
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 2, 3, 4]\n",
      "[[100, 2, 3, 4], [2, 3, 4, 5]]\n",
      "[[1, 2, 3, 4], [2, 3, 4, 5]]\n"
     ]
    }
   ],
   "source": [
    "import copy\n",
    "\n",
    "x = [1, 2, 3, 4]\n",
    "\n",
    "y = copy.copy(x)\n",
    "x[0]= 100\n",
    "\n",
    "print(y)\n",
    "\n",
    "x = [[1, 2, 3, 4], [2, 3, 4, 5]]\n",
    "y = copy.copy(x)\n",
    "x[0][0] = 100\n",
    "print(y)\n",
    "\n",
    "x = [[1, 2, 3, 4], [2, 3, 4, 5]]\n",
    "y = copy.deepcopy(x)\n",
    "x[0][0] = 100\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "33\n",
      "33\n"
     ]
    }
   ],
   "source": [
    "from collections import namedtuple\n",
    "\n",
    "Point = namedtuple('Point', ['x', 'y'])\n",
    "p = Point(11, 22)\n",
    "print(p[0] + p[1])\n",
    "print(p.x + p.y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "deque(['g', 'h', 'i', 'j'], maxlen=4)\n",
      "deque(['h', 'i', 'j', 'k'], maxlen=4)\n"
     ]
    }
   ],
   "source": [
    "from collections import deque\n",
    "\n",
    "d = deque('ghi', maxlen=4)\n",
    "d.append('j')\n",
    "print(d)\n",
    "\n",
    "d.append('k')\n",
    "print(d)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
